インストラクションによる液晶表示器の設定
液晶表示器は、インストラクションというデータコードを使って制御することができます。液晶表示器は文字を表示するだけでなく、インストラクションによりカーソルを表示したり、あるいは文字をブリンク(点滅)することもできます。ここでは、インストラクションについての概要を解説いたしました。
インストラクションの概要
表1にインストラクションの一覧表を示します。
インストラクション | コード | 機能 | |||||||||
RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | ||
(1)表示クリア | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 全表示クリア後、カーソルを ホーム位置(0番地)へ戻す |
(2)カーソルホーム | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | * | カーソルをホーム位置に戻す。 シフトしていた表示も元へ戻る。 DD RAMの内容は変化しない。 |
(3)エントリーモードセット | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | I/D | s | データの書き込み及び読み出し 時に、カーソルの進む方向、表 示をシフトさせるかどうかの設定 |
(4)表示オン/オフ コントロール |
0 | 0 | 0 | 0 | 0 | 0 | 1 | D | C | B | 全表示のオン/オフ(D)、カーソ ルのオン/オフ(C),カーソル位 置にある桁のブリンク(B)をセット |
(5)カーソル/表示シフト | 0 | 0 | 0 | 0 | 0 | 1 | S/C | R/L | * | * | DD RAMの内容を変えずに、 カーソルの移動と、表示シフト を行う。 |
(6)ファンクションセット | 0 | 0 | 0 | 0 | 1 | DL | N | F | * | * | インターフェースデータ長(DL)、 デューティ(N)、及び文字フォン ト(F)を設定する。 |
(7)CG RAMアドレスセット | 0 | 0 | 0 | 1 | ACG(CGRAMのアドレス) | CG RAMのアドレスをセット 以降送受するデータは CG RAMのデータ |
|||||
(8)DD RAMアドレスセット | 0 | 0 | 1 | ADD(DDRAMのアドレス) | DD RAMのアドレスをセット 以降送受するデータは DD RAMのデータ |
||||||
(9)BF/アドレス読み出し | 0 | 1 | BF | AC(アドレスカウンタ) | モジュールが内部動作中で あることを示すBF及びACの 内容を読み出す。 |
||||||
(10)CGRAM、DDRAMへ のデータ書き込み |
1 | 0 | 書き込みデータ | DDRAMまたはCGRAMに データを書き込む |
|||||||
(11)CGRAM、DDRAM からのデータ読み出し |
1 | 1 | 読み出しデータ | DDRAMまたはCGRAMから データを読み出す |
(1)表示クリア
全表示クリア後、カーソルをホーム位置(0番地)へ戻します。DDRAMの全アドレスにスペースコード「20H」が書き込まれ、AC(アドレスカウンタ)にDDRAMアドレスの0番地がセットされます。表示はシフトしていた場合には、元に位置に戻ります。表示クリア命令実行後は、エントリーモードはインクリメントが選択されています。
コード | RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
(2)カーソルホーム
カーソルをホーム位置(0番地)へ戻します。AC(アドレスカウンタ)にDDRAMアドレスの0番地がセットされます。カーソルはホーム位置へ戻り、表示はシフトしていた場合は元の位置に戻ります。DDRAMの内容は変化しません。カーソルまたはブリンク(点滅)は、表示されていた場合は、表示の左端に戻ります。DB0は無効なビットで、「0」でも「1」でも構いません。
コード | RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | * |
(注) *: 無効のビット
(3)エントリーモードセット
カーソルの進む方向及び表示をシフトさせるかどうかを設定します。文字コードをDDRAMに書き込み又は読み出したとき、DDRAMのアドレスを+1又は−1します。CGRAMに書き込み、読み出しの時も同様です。S=1のとき、DDRAMへの書き込みの際に表示全体を左右どちらかにシフトします。カーソルの位置は変わらず表示のみが移動します。DDRAMからの読み出しの時は表示のシフトはありません。
コード | RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | I/D | S |
(注) I/D=1: アドレスを+1し、カーソル又はブリンク(点滅)が右に動く
I/D=0: アドレスを−1し、カーソル又はブリンク(点滅)が左に動く
S=1,I/D=1: 左にシフトします。
S=1,I/D=0: 右にシフトします。
S=0: 表示はシフトしない。
(4)表示オン/オフコントロール
表示のオン/オフ、カーソルのオン/オフ、カーソル位置にある桁の文字のブリンク(点滅)について設定します。カーソルオン/オフ及びブリンクはAC(アドレスカウンタ)に指定されているDDRAMのアドレスで示される桁で行われます。D=0による表示オフの場合、表示データはDDRAMに残っているので、D=1にすれば再び表示されます。カーソルは文字フォントの下のドット行に表示されます。ブリンク(点滅)は、全ドット黒と文字を切り替えて表示します。カーソルとブリンクは同時に設定することができます。
コード | RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | D | C | B |
(注) D=1: 表示オン
D=0: 表示オフ
C=1: カーソルを表示する
C=0: カーソルを表示しない
B=1: カーソル位置に相当する文字をブリンク(点滅)させる。
B=0: ブリンク(点滅)しない
(5)カーソル/表示シフト
DDRAMの内容を変えずに、カーソルの移動と表示シフトを行います。カーソル位置とAC(アドレスカウンタ)の内容は一致します。表示データの書き込み・読み出しをしないで、カーソル位置もしくは表示をシフトさせるので、表示の修正・検索に使えます。1行目から2行目へのカーソルの移動は1行目の40桁目の次に行われます。また、表示シフトは1行目と2行目が同時に行われます。したがって、表示をシフトさせたときに、2行目の表示が1行目に移動することはありません。
コード | RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 0 | 0 | 1 | S/C | R/L | * | * |
(注) S/C=0,R/L=0: カーソル位置を左にシフトします。(ACを−1します)
S/C=0,R/L=1: カーソル位置を右にシフトします。(ACを+1します)
S/C=1,R/L=0: 表示全体を左にシフトします。カーソルは表示について動きます。(ACは変化しない)
S/C=1,R/L=1: 表示全体を右にシフトします。カーソルは表示について動きます。(ACは変化しない)
*: 無効のビット
(6)ファンクションセット
インターフェイスデータ長、デューティ、及び文字フォントを設定します。ファンクションセットはビジィフラッグ/アドレス読み出し以外のすべてのインストラクションに優先して実行する必要があります。他のインストラクションを実行した後では、インターフェースデータ長を変更する以外のファンクションセット命令は実行されません。4ビット(DB7〜DB4使用)にセットした場合には、2回のデータ転送が必要です。初めに上位4ビットの転送が行われ、次いで下位4ビットの転送が行われます。
コード | RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 0 | 1 | DL | N | F | * | * |
(注) DL=1: 8ビット(DB7〜DB0使用)にセットします。
DL=0: 4ビット(DB7〜DB4使用)にセットします。
N=1: 1/16デューティにセットします。
N=0: 1/8または1/11デューティにセットします。(ここでは、N=1にセットする)
F=1: 文字フォントを5×10ドットマトリクスにセットします。
F=0: 文字フォントを5×7ドットマトリクスにセットします。(N=1のとき、Fは無効のビットとなる)
*: 無効のビット
(7)CGRAMアドレスセット
AAAAAAの2進で表されるCGRAMのアドレスがAC(アドレスカウンタ)に設定され、以後のMPUからの書き込み、読み出しデータはCGRAMに関して行われます。CGRAMのアドレスは、DB5が上位ビット、DB0が下位ビットになります。
コード | RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 1 | A | A | A | A | A | A |
(8)DDRAMアドレスセット
AAAAAAAの2進で表されるDDRAMのアドレスがAC(アドレスカウンタ)に設定され、以後のMPUからの書き込み、読み出しデータはDDRAMに関して行われます。DDRAMのアドレスは、DB6が上位ビット、DB0が下位ビットになります。
コード | RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 1 | A | A | A | A | A | A | A |
(9)ビジィフラッグ/アドレス読み出し
以前に受けたインストラクションによって、モジュールが内部動作中であることを表すBF信号を読み出します。BF=0を確認してから次の書き込みを行います。ビジィフラッグの読み出しと同時にAAAAAAAの2進で表されるAC(アドレスカウンタ)の値を読み出します。ACはCGRAM、DDRAMの両方に使われますが、どちらを読み出すかは、この命令以前にどちらかのアドレスがセットされていたかによって決まります。アドレスは、DB6が上位ビット、DB0が下位ビットになります。
コード | RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 1 | BF | A | A | A | A | A | A | A |
(10)CGRAM、DDRAMへのデータの書き込み
2進8ビットのデータDDDDDDDDをCGRAMまたはDDRAMに書き込みます。どちらに書き込むかは、この命令以前に(7)CGRAMアドレスセットか、(8)DDRAMアドレスセット命令を行うことにより決定されます。書き込み後、アドレス及び表示のシフトはエントリーモードセットに従います。2進8ビットのデータは、DB7が上位ビット、DB0が下位ビットになります。
コード | RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
1 | 0 | D | D | D | D | D | D | D | D |
(11)CGRAM、DDRAMからのデータの読み出し
2進8ビットのデータDDDDDDDDをCGRAMまたはDDRAMから読み出します。どちらから読み出すかは、この命令以前の(7)CGRAMアドレスセットか、(8)DDRAMアドレスセット命令により決定されますが、必ず直前にどちらかの命令を実行しなければなりません。読み出し命令の前に、アドレスセット命令を実行しない場合は、1回目の読み出しデータは無効になります。また連続して読み出し命令を実行する場合は、2回目の読み出しから、データが正常に読み出されるようになります。ただし、DDRAMの読み出しにおいて、カーソルシフト命令によりカーソルを移動した場合は、カーソルシフト命令がDDRAMアドレスセット命令とみなされるので、アドレスセット命令を実行する必要はありません。読み出し後、アドレスはエントリーモードに従って、自動的に+1または−1されますが表示のシフトはエントリーモードに関わらず行わなければなりません。2進8ビットのデータは、DB7が上位ビット、DB0が下位ビットになります。
コード | RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
1 | 1 | D | D | D | D | D | D | D | D |
(注)CGRAM、DDRAMへのデータ書き込み命令の実行後、AC(アドレスカウンタ)はエントリーモードに従って自動的に+1または−1されますが、この直後に読み出し命令を実行しても、その時のACの指すRAMの内容は読み出されません。したがって、正しいデータが読み出されるのは以下の条件の時になります。
インストラクションによる初期設定
液晶表示器は、電源が入ってから自動的にリセットされて通常は初期化されますが、電源条件が合わず自動初期設定がうまく実行されない場合もあります。ここで確実に液晶表示器を動作させるためには、インストラクションによる初期設定を行う必要があります。この場合、電源投入直後はインターフェースデータ長が何ビットに設定されているか分かりませんので、ファンクションセットを2回行って、一度8ビットに設定します。その後のファンクションセットで使用条件に合ったインターフェース長を設定するようにします。
(1)インタ−フェースデータ長: 8ビットの場合の初期設定
|
||||||||||||||||||||||
↓ | ||||||||||||||||||||||
|
VDDが4.5V以上に達してから | |||||||||||||||||||||
↓ | ||||||||||||||||||||||
|
この命令の前にはBFチェックはできない。 ファンクションセット (インターフェースデータ長8ビット) |
|||||||||||||||||||||
↓ | ||||||||||||||||||||||
|
||||||||||||||||||||||
↓ | ||||||||||||||||||||||
|
この命令の前にはBFチェックはできない。 ファンクションセット (インターフェースデータ長8ビット) |
|||||||||||||||||||||
↓ | ||||||||||||||||||||||
|
||||||||||||||||||||||
↓ | ||||||||||||||||||||||
|
この命令の前にはBFチェックはできない。 ファンクションセット (インターフェースデータ長8ビット) |
|||||||||||||||||||||
↓ | ||||||||||||||||||||||
|
以下の命令からBFチェックができます。 ファンクションセット (インターフェースデータ長を8ビットに設定し、 1/16デューティで、文字形式を5×7ドット マトリクスに設定する) |
|||||||||||||||||||||
↓ | ||||||||||||||||||||||
|
表示オフ |
|||||||||||||||||||||
↓ | ||||||||||||||||||||||
|
表示クリア |
|||||||||||||||||||||
↓ | ||||||||||||||||||||||
|
エントリーモードセット (内部RAMの書き込み時に、アドレスは +1され、カーソルは右に移動します。 表示シフトはしません。) |
|||||||||||||||||||||
↓ | ||||||||||||||||||||||
|
(2)インタ−フェースデータ長: 4ビットの場合の初期設定
|
||||||||||||||||||||
↓ | ||||||||||||||||||||
|
VDDが4.5V以上に達してから | |||||||||||||||||||
↓ | ||||||||||||||||||||
|
この命令の前にはBFチェックはできない。 ファンクションセット (インターフェースデータ長8ビット) |
|||||||||||||||||||
↓ | ||||||||||||||||||||
|
||||||||||||||||||||
↓ | ||||||||||||||||||||
|
この命令の前にはBFチェックはできない。 ファンクションセット (インターフェースデータ長8ビット) |
|||||||||||||||||||
↓ | ||||||||||||||||||||
|
||||||||||||||||||||
↓ | ||||||||||||||||||||
|
この命令の前にはBFチェックはできない。 ファンクションセット (インターフェースデータ長8ビット) |
|||||||||||||||||||
↓ | ||||||||||||||||||||
|
以下の命令からBFチェックができます。 ファンクションセット (インターフェースデータ長4ビット) |
|||||||||||||||||||
↓ | ||||||||||||||||||||
|
ファンクションセット (インターフェースデータ長を4ビットに設定し、 1/16デューティで、文字形式を5×7ドット マトリクスに設定する。ここから4ビット動作に なります。) |
|||||||||||||||||||
↓ | ||||||||||||||||||||
|
表示オフ | |||||||||||||||||||
↓ | ||||||||||||||||||||
|
表示クリア | |||||||||||||||||||
↓ | ||||||||||||||||||||
|
エントリーモードセット (内部RAMの書き込み時に、アドレスは +1され、カーソルは右に移動します。 表示シフトはしません。) |
|||||||||||||||||||
↓ | ||||||||||||||||||||
|
インストラクションの使用例
液晶表示器の初期設定終了後、文字を表示させるなどインストラクションの使用例を示します。ここではインターフェースデータ長が8ビットの場合と、4ビットの場合を示します。なお、表示例は16×2の表示器の場合です。
(1)インストラクションの使用例(8ビットの場合)
|
|||||||||||||||||||||||||
↓ | 表 示 例 | ||||||||||||||||||||||||
|
表示をONし、カーソルを ONさせます。 |
|
|||||||||||||||||||||||
↓ | |||||||||||||||||||||||||
|
CGRAM/DDRAM書き込み 文字例「S」を書き込みます。 カーソルは+1されて右へ 移動します。 |
|
|||||||||||||||||||||||
↓ | |||||||||||||||||||||||||
|
文字例「P」を書き込みます。 カーソルは+1されて右へ 移動します。 |
|
|||||||||||||||||||||||
↓ | |||||||||||||||||||||||||
・・・・・(中略)・・・・・ | |||||||||||||||||||||||||
↓ | |||||||||||||||||||||||||
|
文字例「゛」を書き込みます。 このときカーソルは消えます。 |
|
|||||||||||||||||||||||
↓ | |||||||||||||||||||||||||
|
カーソルが2行目にくるように アドレスをセットします。 |
|
|||||||||||||||||||||||
↓ | |||||||||||||||||||||||||
|
文字例「0」を書き込みます。 カーソルは+1されて右へ 移動します。 |
|
|||||||||||||||||||||||
↓ | |||||||||||||||||||||||||
・・・・・(中略)・・・・・ | |||||||||||||||||||||||||
↓ | |||||||||||||||||||||||||
|
文字例「F」を書き込みます。 |
|
|||||||||||||||||||||||
↓ | |||||||||||||||||||||||||
|
カーソルをホームポジション へ移動します。 |
|
|||||||||||||||||||||||
↓ | |||||||||||||||||||||||||
|
表示をクリア カーソルはホームポジション にあります。 |
|
|||||||||||||||||||||||
↓ | |||||||||||||||||||||||||
・・・・・(続く)・・・・・ |
(2)インストラクションの使用例(4ビットの場合)
|
|||||||||||||||||||||||
↓ | 表 示 例 | ||||||||||||||||||||||
|
表示をONし、カーソルを ONさせます。 |
|
|||||||||||||||||||||
↓ | |||||||||||||||||||||||
|
CGRAM/DDRAM書き込み 文字例「S」を書き込みます。 カーソルは+1されて右へ 移動します。 |
|
|||||||||||||||||||||
↓ | |||||||||||||||||||||||
|
文字例「P」を書き込みます。 カーソルは+1されて右へ 移動します。 |
|
|||||||||||||||||||||
↓ | |||||||||||||||||||||||
・・・・・(中略)・・・・・ | |||||||||||||||||||||||
↓ | |||||||||||||||||||||||
|
文字例「゛」を書き込みます。 このときカーソルは消えます。 |
|
|||||||||||||||||||||
↓ | |||||||||||||||||||||||
|
カーソルが2行目にくるように アドレスをセットします。 |
|
|||||||||||||||||||||
↓ | |||||||||||||||||||||||
|
文字例「0」を書き込みます。 カーソルは+1されて右へ 移動します。 |
|
|||||||||||||||||||||
↓ | |||||||||||||||||||||||
・・・・・(中略)・・・・・ | |||||||||||||||||||||||
↓ | |||||||||||||||||||||||
|
文字例「F」を書き込みます。 |
|
|||||||||||||||||||||
↓ | |||||||||||||||||||||||
|
カーソルをホームポジション へ移動します。 |
|
|||||||||||||||||||||
↓ | |||||||||||||||||||||||
|
表示をクリア カーソルはホームポジション にあります。 |
|
|||||||||||||||||||||
↓ | |||||||||||||||||||||||
・・・・・(続く)・・・・・ |
またまだ続くよ!お楽しみに
![]() |
![]() |
![]() |